/*
 * board.h
 *
 *  Created on: Mar 27, 2013
 *      Author: locpx
 */
#include "defines.h"

#ifndef BOARD_H_
#define BOARD_H_

void initBoard(BOARD* m_board);
void displayBoard(BOARD m_board);
void initBoardFromSquares(BOARD* m_board, int m_square[90], unsigned char m_nextMove);
int eval();
MOVE think();
int minimax(int ply, int depth);
int alphabeta(int ply, int depth, int alpha, int beta);
int alphabetapvs(int ply, int depth, int alpha, int beta);

BOOL isEndOfgame(int *legalmoves, MOVE *singlemove);

void rememberPV();
void selectmove(int ply, int i, int depth, BOOL followpv);

#endif /* BOARD_H_ */
